附录 A 蓝牙AT协议 ================================ 1、UART默认配置 ################## .. table:: 附表1-1 :align: center ========= ================== ======================================================= **类别** **说明** **备注** 波特率 115200 数据位 8 停止位 1 校验位 无 流控 无 PIN PB04(TX),PB05(RX) | TX为芯片UART输出,RX为芯片UART输入;可以通过固件修改。 | 代码定义如下: | #define UART_DB_TX_PIN IO_PORTB_04 | #define UART_DB_RX_PIN IO_PORTB_05 ========= ================== ======================================================= 2、协议说明 ############ | 1)MCU发给芯片的数据包称为CMD(命令),MCU通过发送CMD来完成配置蓝牙,控制蓝牙连接,发送数据等操作。 | 2)芯片发给MCU的数据包称为EVENT(事件),芯片通过发送EVENT来通知MCU蓝牙状态的变化以及上报数据等行为。 | 3)MCU每发送一个CMD,都需要等待芯片应答一个EVENT;遵循一去一回的原则;此机制作为软件流控处理。 | 4)芯片的状态变化和上报数据EVENT为实时发送给MCU,不需要等待MCU的查询。 | 5)CMD和EVENT包均为小端传输,即低字节先传输。 | 6)用户有固件程序,可以自己添加CMD和EVENT扩展。 3、包格式 ############ .. table:: 附表1-2 :align: center ================ ================== ======================================================= **Byte offset** **Name** **名称** 0 Packet type 包类型,0x01--CMD包,0x02--EVENT包 1 Op 操作码,根据包类型指示不同的CMD和EVENT指令 2 length 内容长度 3~(length+3) payload 内容 ================ ================== ======================================================= 4、CMD命令 ############ | CMD是MCU发送给蓝牙芯片的指令,用于配置蓝牙,控制蓝牙连接和发送数据等。 | 芯片收到每个CMD后都会回复一个对应的EVENT作为应答(通常为EVENT_CMD_COMPLETE)。 | 即MCU发送CMD后应等待一个与之对应的EVENT,收到此EVENT后再发送新的CMD。 | 另外命令有蓝牙主从机公共使用和主从单独使用,详见标记。 | 已定义的CMD如附表1-3所示: .. table:: 附表1-3 :align: center =================== ================== ======================================================= **CMD** **OP操作码** **描述** CMD_SET_BT_ADDR 0x00 设置蓝牙EDR地址(从) CMD_SET_BLE_ADDR 0x01 设置蓝牙BLE地址(主从) CMD_SET_VISIBILITY 0x02 设置蓝牙可发现和广播(从) CMD_SET_BT_NAME 0x03 设置蓝牙EDR名称(从) CMD_SET_BLE_NAME 0x04 设置蓝牙BLE名称(主从) CMD_SEND_SPP_DATA 0x05 发送蓝牙EDR(SPP)数据(从) CMD_SEND_BLE_DATA 0x09 发送蓝牙BLE(ATT)数据(从) CMD_SEND_DATA 0x0A 发送数据(自动选择通道SPP或BLE)(从) =================== ================== ======================================================= 5、EVENT命令 ############## | EVENT有蓝牙主从机公共使用和主从单独使用,详见标记。已定义的EVENT如下: .. table:: 附表1-4 :align: center ======================= ================== ======================================================= **EVENT事件名称** **OP操作码** **描述** EVENT_BT_CONNECTED 0x00 蓝牙EDR连接建立(从) EVENT_BLE_CONNECTED 0x02 蓝牙BLE连接建立(主从) EVENT_BT_DISCONNECTED 0x03 蓝牙EDR连接已经断开(从) EVENT_BLE_DISCONNECTED 0x05 蓝牙BLE连接已经断开(主从) EVENT_CMD_COMPLETE 0x06 命令已完成(主从) ======================= ================== =======================================================